Space-Time Adaptive Processing (STAP) presents a challenge to digital signal processors that are required to operate in real time. Available processing hardware, given limits on size, weight and power, and the need to achieve a substantial percentage of peak operating capacity to perform in real time involve careful attention to programming details. It has been found that within a STAP high speed pipeline, a maximum rate of running the pipeline was limited by the execution time of a matrix inverse function to compute a set of adaptive weights for the purpose of jammer nulling, i.e., the pipeline had to wait until the computation of the adaptive weights was completed before the pipeline could perform further processing on incoming data. In fact, the matrix inverse function can be a critical operation in many application domains, e.g., the computation of adaptive weights for jammer nulling and clutter cancellation in radar applications, deriving optimal solutions in control applications, etc.
Performing the matrix inverse calculation can be a very time consuming process. In real-time applications, the matrix inverse operation should be performed as rapidly as possible. One approach to performing a matrix inverse is to create an upper-right triangularized matrix via a Householder or equivalent transformation of received sample data and to perform a forward/backward (forback) substitution operation to solve for adaptive weights by computing a first weight, then computing a second weight (which requires the first weight value), and so forth. Forward or backward substitution is inherently a slow, sequential process.
It is desirable to speed up matrix inverse functions by exploiting parallelism in the forward/backward computations.